<template>
  <img
    :src="previewUrl"
    v-if="previewUrl"
    style="width: 30px; height: 30px"
  />
</template>
<script>
import axios from 'axios'
import COS from 'cos-js-sdk-v5'
export default {
  name: 'partImg',
  props:{
    path:{
      typeof:String,
      default:""
    }
  },
  data() {
    return {
      previewUrl:""
    }
  },
  created() {},
  mounted() {
    this.getImgUrl()
  },
  methods: {
      /**
     * 获取图片地址
     */
    getImgUrl() {
      let path =this.path
      let that = this
      if (path) {
      var cos = new COS({
          getAuthorization: function (options, callback) {
            // 初始化时不会调用，只有调用 cos 方法（例如 cos.putObject）时才会进入
            // 异步获取临时密钥
            axios
              .get(
                'http://101.43.187.89:30001/cos-authorization/getAuthorization',
                {
                  params: {
                    prefix: 'images',
                    type: 'getObject',
                    bucketName: 'file-1322379458'
                  }
                }
              )
              .then((res) => {
                if (res.data.code == 0) {
                  var data = res.data.data
                  console.log('数据：', data)
                  callback({
                    TmpSecretId: data.tmpSecretId,
                    TmpSecretKey: data.tmpSecretKey,
                    SecurityToken: data.sessionToken,
                    // 建议返回服务器时间作为签名的开始时间，避免用户浏览器本地时间偏差过大导致签名错误
                    StartTime: data.startTime, // 时间戳，单位秒，如：1580000000
                    ExpiredTime: data.expiredTime // 时间戳，单位秒，如：1580000000              // 临时密钥失效时间戳，是申请临时密钥时，时间戳加 durationSeconds
                  })
                }
              })
          }
        })
          cos.getObjectUrl(
              {
                Bucket: 'file-1322379458' /* 填入您自己的存储桶，必须字段 */,
                Region: 'ap-chengdu' /* 存储桶所在地域，例如ap-beijing，必须字段 */,
                Key: path /* 存储在桶里的对象键（例如1.jpg，a/b/test.txt），必须字段 */,
                Sign: true,
                onProgress: function (progressData) {
                  console.log(JSON.stringify(progressData))
                },
              },
              function (err, data) {
                that.previewUrl = data.Url;
              }
            )
      }
    },
  }
}
</script>
